AUGMENTATION METHODS

Importing Libraries

In [1]:
import numpy as np
import pandas as pd
import os
import Augmentor
from shutil import *
import os
import re
import cv2 
import matplotlib.pyplot as plt
import warnings
warnings.filterwarnings("ignore")

Image and Mask Source

In [2]:
SRC_IMG = "/home/affine/Downloads/TGS_OilPad_Identify/Augmentation Methods/Image/"
SRC_MASK = "/home/affine/Downloads/TGS_OilPad_Identify/Augmentation Methods/Image_Mask/"
IMAGE_ORIGINAL = "/home/affine/Downloads/TGS_OilPad_Identify/Augmentation Methods/Image/30005279950000_25796256.png"

Function for Plotting

In [3]:
def plot_orig_aug(orig_img,aug_img):
    fig = plt.figure(figsize=(20,20))
    fig.add_subplot(1,2,1)
    ax1 = fig.add_subplot(121)
    ax1.title.set_text('Original Image')
    plt.imshow(orig_img)
    fig.add_subplot(1,2,2)
    ax2 = fig.add_subplot(122)
    ax2.title.set_text('Augmented Image')
    plt.imshow(aug_img)
    plt.show()
    

Initializing Augmentor Pipeline

In [4]:
p = Augmentor.Pipeline(SRC_IMG)
Initialised with 1 image(s) found.
Output directory set to /home/affine/Downloads/TGS_OilPad_Identify/Augmentation Methods/Image/output.

Adding Augmentation Operation 1: Random Erasing

In [12]:
p.random_erasing(probability=0.5,rectangle_area=0.5)
p.process()
original_image = cv2.imread(IMAGE_ORIGINAL)
aug1 = cv2.imread("/home/affine/Downloads/TGS_OilPad_Identify/Augmentation Methods/Image/output/Random_Erasing_Image.png")


plot_orig_aug(original_image,aug1)
p.remove_operation()
Processing <PIL.PngImagePlugin.PngImageFile image mode=P size=500x500 at 0x7FD751E6FE48>: 100%|██████████| 1/1 [00:00<00:00, 17.85 Samples/s]

Adding Augmentation Operation 2: Rotate

In [31]:
p.rotate(probability=1,max_left_rotation=20,max_right_rotation= 20)
p.process()
aug2 = cv2.imread("/home/affine/Downloads/TGS_OilPad_Identify/Augmentation Methods/Image/output/Rotate_Image.png")
plot_orig_aug(original_image,aug2)
p.remove_operation()
Processing <PIL.Image.Image image mode=P size=500x500 at 0x7FD9368DFA90>: 100%|██████████| 1/1 [00:00<00:00, 17.05 Samples/s]

Adding Augmentation Operation 3: Rotate without Crop

In [32]:
p.rotate_without_crop(probability=1,max_left_rotation=20,max_right_rotation= 20)
p.process()
aug3 = cv2.imread("/home/affine/Downloads/TGS_OilPad_Identify/Augmentation Methods/Image/output/Rotate_wo_Crop_Image.png")
plot_orig_aug(original_image,aug3)
p.remove_operation()
Processing <PIL.Image.Image image mode=P size=500x500 at 0x7FD936814668>: 100%|██████████| 1/1 [00:00<00:00, 36.23 Samples/s]

Adding Augmentation 4: Skew Tilt

In [33]:
p.skew_tilt(probability=1)
p.process()
aug4 = cv2.imread("/home/affine/Downloads/TGS_OilPad_Identify/Augmentation Methods/Image/output/Skew_Tilt.png")
plot_orig_aug(original_image,aug4)
p.remove_operation()
Processing <PIL.Image.Image image mode=P size=500x500 at 0x7FD93674BA58>: 100%|██████████| 1/1 [00:00<00:00,  5.58 Samples/s]

Adding Augmentation 5: Random Distortion

In [36]:
p.random_distortion(probability=1,grid_width=10,grid_height=10,magnitude=10)
p.process()
aug5 = cv2.imread("/home/affine/Downloads/TGS_OilPad_Identify/Augmentation Methods/Image/output/Random_Distortion_Image.png")
plot_orig_aug(original_image,aug5)
p.remove_operation()
Processing <PIL.Image.Image image mode=P size=500x500 at 0x7FD9365F3C88>: 100%|██████████| 1/1 [00:00<00:00, 39.85 Samples/s]

Adding Augmentation Operation 6: Flip Random

In [37]:
p.flip_random(probability=1)
p.process()
aug6 = cv2.imread("/home/affine/Downloads/TGS_OilPad_Identify/Augmentation Methods/Image/output/Flip_Random_Image.png")
plot_orig_aug(original_image,aug6)
p.remove_operation()
Processing <PIL.Image.Image image mode=P size=500x500 at 0x7FD9366BD4E0>: 100%|██████████| 1/1 [00:00<00:00, 40.31 Samples/s]

Adding Augmentation Operation 7: Shear

In [10]:
p.shear(probability=1,max_shear_left=15,max_shear_right=15)
p.process()
aug7 = cv2.imread("/home/affine/Downloads/TGS_OilPad_Identify/Augmentation Methods/Image/output/Shear_Image.png")
plot_orig_aug(original_image,aug7)
p.remove_operation()

Adding Augmentation Operation 8: Zoom

In [17]:
p.zoom(probability = 1,max_factor=1.5,min_factor=1.1)
p.process()
aug8 = cv2.imread("/home/affine/Downloads/TGS_OilPad_Identify/Augmentation Methods/Image/output/Zoom_Image.png")
plot_orig_aug(original_image,aug8)
p.remove_operation()

Adding Augmentation Operation 9: Gaussian Distortion

In [19]:
p.gaussian_distortion(probability=1,grid_height=25,grid_width=25,magnitude=10,corner='bell',method='in')
p.process()
aug9 = cv2.imread("/home/affine/Downloads/TGS_OilPad_Identify/Augmentation Methods/Image/output/Gaussian_Distortion_Image.png")
plot_orig_aug(original_image,aug9)
p.remove_operation()

Adding Augmentation Method 10: Histogram Equalisation

In [21]:
p.histogram_equalisation(probability=1)
p.process()
aug10 = cv2.imread("/home/affine/Downloads/TGS_OilPad_Identify/Augmentation Methods/Image/output/Histogram_Equalization_Image.png")
plot_orig_aug(original_image,aug10)
p.remove_operation()

Adding Augmentation Operation 11: Crop and Resize

In [23]:
p.crop_by_size(probability = 1.0,width =256, height =  256, centre = False)
p.resize(probability = 1.0,width =  500, height = 500)
p.process()
aug11 = cv2.imread("/home/affine/Downloads/TGS_OilPad_Identify/Augmentation Methods/Image/output/CropResize_Image.png")
plot_orig_aug(original_image,aug11)
p.remove_operation()
Processing <PIL.Image.Image image mode=P size=500x500 at 0x7FD751D90710>: 100%|██████████| 1/1 [00:00<00:00, 52.70 Samples/s]

Adding Augmentation Operation 12: BlackWhite

In [28]:
aug12 = cv2.cvtColor(original_image,cv2.COLOR_BGR2GRAY)
cv2.imwrite("/home/affine/Downloads/TGS_OilPad_Identify/Augmentation Methods/Image/output/BlackWhite_Image.png",aug12)
aug12 = cv2.imread("/home/affine/Downloads/TGS_OilPad_Identify/Augmentation Methods/Image/output/BlackWhite_Image.png")
plot_orig_aug(original_image,aug12)

Adding Augmentation Operation 13: Black and White Rain

In [30]:
aug13 = cv2.imread("/home/affine/Downloads/TGS_OilPad_Identify/Augmentation Methods/Image/output/WhiteBlackRain_Image.png")
plot_orig_aug(original_image,aug13)

Adding Augmentation Operation 14: Color Rain

In [31]:
aug14 = cv2.imread("/home/affine/Downloads/TGS_OilPad_Identify/Augmentation Methods/Image/output/ColorRain_Image.png")
plot_orig_aug(original_image,aug14)

Adding Augmentation Operation 15: Contrast

In [32]:
aug15 = cv2.imread("/home/affine/Downloads/TGS_OilPad_Identify/Augmentation Methods/Image/output/Contrast_Image.png")
plot_orig_aug(original_image,aug15)

Adding Augmentation Operation 16: Brightness

In [33]:
aug16 = cv2.imread("/home/affine/Downloads/TGS_OilPad_Identify/Augmentation Methods/Image/output/Brightness_Image.png")
plot_orig_aug(original_image,aug16)

Adding Augmentation Operation 17: Gamma Adjustment

In [34]:
aug17 = cv2.imread("/home/affine/Downloads/TGS_OilPad_Identify/Augmentation Methods/Image/output/Gamma_Image.png")
plot_orig_aug(original_image,aug17)

Adding Augmentation Operation 18: Salt and Pepper BW

In [36]:
aug18 = cv2.imread("/home/affine/Downloads/TGS_OilPad_Identify/Augmentation Methods/Image/output/Salt_Pepper_BW_Image.png")
plot_orig_aug(original_image,aug18)

Adding Augmentation Operation 19: Salt and Pepper RGB

In [37]:
aug19 = cv2.imread("/home/affine/Downloads/TGS_OilPad_Identify/Augmentation Methods/Image/output/Salt_Pepper_RGB_Image.png")
plot_orig_aug(original_image,aug19)

Adding Augmentation Operation 20: Snow

In [ ]:
/home/affine/Downloads/TGS_OilPad_Identify/Augmentation Methods/Image/output/Snow_Image.png
In [38]:
aug20 = cv2.imread("/home/affine/Downloads/TGS_OilPad_Identify/Augmentation Methods/Image/output/Snow_Image.png")
plot_orig_aug(original_image,aug20)

Adding Augmentation Operation 21: HSV Shifting

To be reviewed
In [39]:
aug21 = cv2.imread("/home/affine/Downloads/TGS_OilPad_Identify/Augmentation Methods/Image/output/HSV_Image.png")
plot_orig_aug(original_image,aug21)

Adding Augmentation Operation 22: Polygon Sahdow

In [41]:
aug22 = cv2.imread("/home/affine/Downloads/TGS_OilPad_Identify/Augmentation Methods/Image/output/Polygon_Shadow_Image.png")
plot_orig_aug(original_image,aug22)